package com.platform.usercenter.service.impl;

import java.util.List;

import com.alibaba.fastjson.JSON;
import com.platform.common.core.utils.DateUtils;
import com.platform.usercenter.domain.dto.SelectOptionDTO;
import com.platform.usercenter.domain.dto.SysRoleMenuValueDTO;
import com.platform.usercenter.domain.query.SysRoleMenuValueQuery;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import com.platform.usercenter.mapper.SysRoleMenuValueMapper;
import com.platform.usercenter.domain.SysRoleMenuValue;
import com.platform.usercenter.service.ISysRoleMenuValueService;

import javax.annotation.Resource;

/**
 * 角色菜单数据权限Service业务层处理
 *
 * @author platform
 * @date 2024-10-28
 */
@Service
public class SysRoleMenuValueServiceImpl implements ISysRoleMenuValueService
{
    @Resource
    private SysRoleMenuValueMapper sysRoleMenuValueMapper;

    /**
     * 查询角色菜单数据权限
     *
     * @param orgId 角色菜单数据权限主键
     * @return 角色菜单数据权限
     */
    @Override
    public SysRoleMenuValue selectSysRoleMenuValueByOrgId(Long orgId)
    {
        return sysRoleMenuValueMapper.selectSysRoleMenuValueByOrgId(orgId);
    }

    /**
     * 查询角色菜单数据权限列表
     *
     * @param sysRoleMenuValue 角色菜单数据权限
     * @return 角色菜单数据权限
     */
    @Override
    public List<SysRoleMenuValue> selectSysRoleMenuValueList(SysRoleMenuValue sysRoleMenuValue)
    {
        return sysRoleMenuValueMapper.selectSysRoleMenuValueList(sysRoleMenuValue);
    }

    @Override
    public List<SysRoleMenuValueDTO> selectSysRoleMenuValueDTOList(SysRoleMenuValueQuery query) {
        List<SysRoleMenuValueDTO>  roleMenuValueDTOS=sysRoleMenuValueMapper.selectSysRoleMenuValueDTOList(query);
        if(CollectionUtils.isNotEmpty(roleMenuValueDTOS)){
            for (SysRoleMenuValueDTO dto:roleMenuValueDTOS){
                dto.setSelectOptionDTOS(JSON.parseArray(dto.getValue(), SelectOptionDTO.class));
            }
        }
        return roleMenuValueDTOS;
    }

    /**
     * 新增角色菜单数据权限
     *
     * @param sysRoleMenuValue 角色菜单数据权限
     * @return 结果
     */
    @Override
    public int insertSysRoleMenuValue(SysRoleMenuValue sysRoleMenuValue)
    {
        sysRoleMenuValue.setCreateTime(DateUtils.getNowDate());
        return sysRoleMenuValueMapper.insertSysRoleMenuValue(sysRoleMenuValue);
    }

    /**
     * 修改角色菜单数据权限
     *
     * @param sysRoleMenuValue 角色菜单数据权限
     * @return 结果
     */
    @Override
    public int updateSysRoleMenuValue(SysRoleMenuValue sysRoleMenuValue)
    {
        sysRoleMenuValue.setUpdateTime(DateUtils.getNowDate());
        return sysRoleMenuValueMapper.updateSysRoleMenuValue(sysRoleMenuValue);
    }

    /**
     * 修改角色菜单数据权限
     *
     * @param sysRoleMenuValue 角色菜单数据权限
     * @return 结果
     */
    @Override
    public int updateSysRoleMenuValueByRoleId(SysRoleMenuValue sysRoleMenuValue)
    {
        sysRoleMenuValue.setUpdateTime(DateUtils.getNowDate());
        return sysRoleMenuValueMapper.updateSysRoleMenuValueByRoleId(sysRoleMenuValue);
    }

    /**
     * 批量删除角色菜单数据权限
     *
     * @param orgIds 需要删除的角色菜单数据权限主键
     * @return 结果
     */
    @Override
    public int deleteSysRoleMenuValueByOrgIds(Long[] orgIds)
    {
        return sysRoleMenuValueMapper.deleteSysRoleMenuValueByOrgIds(orgIds);
    }

    /**
     * 删除角色菜单数据权限信息
     *
     * @param orgId 角色菜单数据权限主键
     * @return 结果
     */
    @Override
    public int deleteSysRoleMenuValueByOrgId(Long orgId)
    {
        return sysRoleMenuValueMapper.deleteSysRoleMenuValueByOrgId(orgId);
    }
    /**
     * 删除角色菜单数据权限信息
     *
     * @param orgId 角色菜单数据权限主键
     * @return 结果
     */
    @Override
    public int deleteSysRoleMenuValueByRoleId(Long roleId)
    {
        return sysRoleMenuValueMapper.deleteSysRoleMenuValueByRoleId(roleId);
    }
}
